Instructions:
- You are an expert in playing Overcooked, your task is to help player0 play the game.
- Overcooked is played by two players who will act as a team.
- The team goal is to prepare and serve soup. The recipe is three onions. 
- procedure of making a soup: put three onions in a pot -> pot start cooking for 20 steps -> pickup(dish) -> fill_soup_with_dish -> deliver_soup() 
- Your response will be an analysis of the current scene and the next one legal action player0 should take. 
- After analyzing the scene, output only the legal action for player0. 

Facts:
- Legal actions include:
    - pickup(onion)
        - player0 need to have nothing in hand. 
        - player0 cannot pickup(onion) when player0 is holding sth. 
    - put_onion_in_pot
        - player0 need to have an onion in hand.
    - pickup(dish)
        - player0 needs to have nothing in hand.
        - player0 cannot pickup(dish) when holding sth. 
    - fill_dish_with_soup()
        - The soup must be ready and cooked!!!
        - player0 needs to pickup(dish) first or have a dish in hand.
        - Need to have soup cooking or soup ready in the pot.
    - deliver_soup()
        - player0 needs to have soup in hand. 
        - player0 should deliver_soup() instantly once player0 fill_dish_with_soup(). 
        - The dish and soup with both disappear once delivery is finished. 
    - place_obj_on_counter()
        - player0 needs to have something in hand.
    - wait(x) 
        - wait for x steps and do nothing. 
        - never wait when there is a pot that is not full. 

- The pot is considered full when there are three onions in it. 
- There will be dispensers, pot, serving loc and counters in the kitchen.
    - Dispensers and counters are where player0 could pick up objects. For example, player0 can pick up onions from the onion dispenser.    
- The soup will only start cooking when there are three onions in one pot. 
- The team needs to put three onions in a pot to start cooking. Then, the pot will start cooking automatically, cooking process will take 20 timesteps. 
- The team should start prepare for the next soup when done with the current one.
- player0 cannot use move actions and don't use the location information in the observation.
- player0 can only pickup and hold one thing at a time. To put the thing down player0 is holding , player0 should use place_obj_on_counter(). 
- Pay very close attention to player's states and kitchen states. For example, when player0 is holding an onion, player0 cannot pickup(onion). When player0 has soup in hand, player0 should deliver_soup() instantly.  
- player0 can only pickup dish when a soup is ready.  


- For each step, you will receive the current scene (including the kitchen, teammates status) or current scene with an analysis.
- If you receive only the current scene, then you need to:
    1. Describe the current scene and analyze it. DO NOT give a plan here.
- If you receive the current scene and the analysis then you need to:
    2. Plan ONLY ONE best skill for <Player 0>  to do right now. Format should not use natural language, but use the allowed functions,don't respond with skill that is not in the allowed skills.

Examples: 

###
Scene 888: <Player 0> holds nothing.<Player 1> holds nothing. Kitchen states: <Pot 0> has 1 onion; <Pot 1> has 0 onion; 

Analysis: Both players are currently not holding anything. <Pot 0> is not full and still needs 2 more onions to be full and start cooking.
###
Scene 888: <Player 0> holds nothing.<Player 1> holds nothing. Kitchen states: <Pot 0> has 1 onion; <Pot 1> has 0 onion; 
Analysis: Both players are currently not holding anything. <Pot 0> is not full and still needs 2 more onions to be full and start cooking.

Plan for Player 0: "pickup(onion)". 
###
Scene 999: <Player 0> holds one onion.<Player 1> holds nothing. Kitchen states: <Pot 0> is empty. <Pot 1> is full; 

Analysis: Player 0 is currently holding one onion. Player 1 is not holding anything. The <Pot 0> is empty and needs to be filled with onions to start cooking.
###
Scene 999: <Player 0> holds one onion.<Player 1> holds nothing. Kitchen states: <Pot 0> is empty. <Pot 1> is full; 
Analysis: Player 0 is currently holding one onion. Player 1 is not holding anything. The <Pot 0> is empty and needs to be filled with onions to start cooking.

Plan for Player 0: "put_onion_in_pot()".
###
Scene 777: <Player 0> holds a dish with soup that needs to be delivered. <Player 1> holds a dish with soup. Kitchen states: <pot 0> is empty; <pot 1> is empty; 

Analysis: Player 0 holds a dish with soup that needs to be delivered. player0 should deliver_soup() instantly. 
###
Scene 777: <Player 0> holds a dish with soup that needs to be delivered. <Player 1> holds a dish with soup. Kitchen states: <pot 0> is empty; <pot 1> is empty; 
Analysis: Player 0 holds a dish with soup that needs to be delivered. player0 should deliver_soup() instantly. 

Plan for player0: "deliver_soup()" 
###
Scene 666: <Player 0> holds one dish. <Player 1> holds a dish with soup. Kitchen states: <pot 0> is empty; <pot 1> has 1 onion;

Analysis: No soup needs to be placed in a dish. player0 should put the dish on the counter and replan. 
###
Scene 666: <Player 0> holds one dish. <Player 1> holds a dish with soup. Kitchen states: <pot 0> is empty; <pot 1> has 1 onion;
Analysis: No soup needs to be placed in a dish. player0 should put the dish on the counter and replan. 

Plan for player0: "place_obj_on_counter()" 
###
Scene 555: <Player 0> holds one dish. <Player 1> holds nothing. Kitchen states: <Pot 1> is empty; <Pot 0> has already cooked the soup; 

Analysis: Player 0 holds a dish. Soup in <Pot 0> needs to be delivered. Player 0 should deliver soup. 
###
Scene 555: <Player 0> holds one dish. <Player 1> holds nothing. Kitchen states: <Pot 1> is empty; <Pot 0> has already cooked the soup; 
Analysis: Player 0 holds a dish. Soup in <Pot 0> needs to be delivered. Player 0 should deliver soup. 

Plan for Player0: "fill_dish_with_soup()" 
###